{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}

module Storage.Beam.TransporterConfig where

import qualified Data.Aeson
import qualified Database.Beam as B
import Domain.Types.Common ()
import qualified Domain.Types.Extra.TransporterConfig
import qualified Domain.Types.TransporterConfig
import qualified Domain.Types.UtilsTH
import qualified Domain.Types.VehicleVariant
import qualified Email.Types
import Kernel.External.Encryption
import qualified Kernel.External.Types
import Kernel.Prelude
import qualified Kernel.Prelude
import qualified Kernel.Types.Beckn.City
import qualified Kernel.Types.Common
import Tools.Beam.UtilsTH

data TransporterConfigT f = TransporterConfigT
  { aaEnabledClientSdkVersion :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Text),
    aadhaarImageResizeConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    aadhaarVerificationRequired :: B.C f Kernel.Prelude.Bool,
    acStatusCheckGap :: B.C f Kernel.Prelude.Int,
    actualRideDistanceDiffThreshold :: B.C f Kernel.Types.Common.HighPrecMeters,
    actualRideDistanceDiffThresholdIfWithinPickupDrop :: B.C f Kernel.Types.Common.HighPrecMeters,
    allowDashboardToPassVehicleDetails :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowDefaultPlanAllocation :: B.C f Kernel.Prelude.Bool,
    allowDriverToUseFleetRcs :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowDuplicateAadhaar :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowDuplicateGst :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowDuplicatePan :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowRcUnlinkWhenDriverOffline :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    allowedReferralEntities :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    analyticsConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    approxRideDistanceDiffThreshold :: B.C f Kernel.Types.Common.HighPrecMeters,
    arrivalTimeBufferOfVehicle :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    arrivedPickupThreshold :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.HighPrecMeters),
    arrivedStopThreshold :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.HighPrecMeters),
    arrivingPickupThreshold :: B.C f Kernel.Types.Common.HighPrecMeters,
    automaticRCActivationCutOff :: B.C f Kernel.Types.Common.Seconds,
    avgSpeedOfVehicle :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    badDebtBatchSize :: B.C f Kernel.Prelude.Int,
    badDebtRescheduleTime :: B.C f Kernel.Types.Common.Seconds,
    badDebtSchedulerTime :: B.C f Kernel.Types.Common.Seconds,
    badDebtTimeThreshold :: B.C f Kernel.Prelude.Int,
    bankErrorExpiry :: B.C f Kernel.Types.Common.Seconds,
    bookAnyVehicleDowngradeLevel :: B.C f Kernel.Prelude.Int,
    bulkWaiveOffLimit :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    cacheOfferListByDriverId :: B.C f Kernel.Prelude.Bool,
    cachedDevicesOSForSearchRequest :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    canAddCancellationFee :: B.C f Kernel.Prelude.Bool,
    canDowngradeToHatchback :: B.C f Kernel.Prelude.Bool,
    canDowngradeToSedan :: B.C f Kernel.Prelude.Bool,
    canDowngradeToTaxi :: B.C f Kernel.Prelude.Bool,
    canSuvDowngradeToHatchback :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    canSuvDowngradeToTaxi :: B.C f Kernel.Prelude.Bool,
    canSwitchToInterCity :: B.C f Kernel.Prelude.Bool,
    canSwitchToRental :: B.C f Kernel.Prelude.Bool,
    cancellationDistDiff :: B.C f Kernel.Prelude.Int,
    cancellationFee :: B.C f Kernel.Types.Common.HighPrecMoney,
    cancellationFeeCycle :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    cancellationFeeDisputeLimit :: B.C f Kernel.Prelude.Int,
    cancellationFeeDisputeWindow :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    cancellationFeeVendor :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Text),
    cancellationRateCalculationThreshold :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    cancellationRateSlabConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    cancellationRateThresholdDaily :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    cancellationRateThresholdWeekly :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    cancellationRateWindow :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    cancellationTimeDiff :: B.C f Kernel.Types.Common.Seconds,
    checkImageExtractionForDashboard :: B.C f Kernel.Prelude.Bool,
    coinConversionRate :: B.C f Kernel.Types.Common.HighPrecMoney,
    coinExpireTime :: B.C f Kernel.Types.Common.Seconds,
    coinFeature :: B.C f Kernel.Prelude.Bool,
    considerDriversForSearch :: B.C f Kernel.Prelude.Bool,
    considerSpecialZoneRideChargesInFreeTrial :: B.C f Kernel.Prelude.Bool,
    considerSpecialZoneRidesForPlanCharges :: B.C f Kernel.Prelude.Bool,
    createDocumentRequired :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    createdAt :: B.C f Kernel.Prelude.UTCTime,
    crossTravelCities :: B.C f [Kernel.Types.Beckn.City.City],
    currency :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Currency),
    dailyConditionCooldownTimeHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    dailyMinRidesForBlocking :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    dailyMinRidesForNudging :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    dailyOffenceSuspensionTimeHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    deactivateRCOnUnlink :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    defaultPopupDelay :: B.C f Kernel.Types.Common.Seconds,
    deleteDriverBankAccountWhenLinkToFleet :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    demandHotspotsConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    disableDriverWhenUnlinkingVehicle :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    disableListScheduledBookingAPI :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    distanceUnit :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.DistanceUnit),
    distanceWeightage :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    dlNumberVerification :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    dpBlackListedGeohash :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    dpGeoHashPercision :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    dpWhiteListedGeohash :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    driverAutoPayExecutionTime :: B.C f Kernel.Types.Common.Seconds,
    driverAutoPayExecutionTimeFallBack :: B.C f Kernel.Types.Common.Seconds,
    driverAutoPayNotificationTime :: B.C f Kernel.Types.Common.Seconds,
    driverCallingOption :: B.C f (Kernel.Prelude.Maybe Domain.Types.TransporterConfig.CallingOption),
    driverDistanceToPickupThresholdOnCancel :: B.C f Kernel.Types.Common.Meters,
    driverDistanceTravelledOnPickupThresholdOnCancel :: B.C f Kernel.Types.Common.Meters,
    driverDrivenSearchReqExpiry :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    driverFeeCalculationTime :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    driverFeeCalculatorBatchGap :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    driverFeeCalculatorBatchSize :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    driverFeeMandateExecutionBatchSize :: B.C f Kernel.Prelude.Int,
    driverFeeMandateNotificationBatchSize :: B.C f Kernel.Prelude.Int,
    driverFeeOverlaySendingTimeLimitInDays :: B.C f Kernel.Prelude.Int,
    driverFeeRetryThresholdConfig :: B.C f Kernel.Prelude.Int,
    driverLocationAccuracyBuffer :: B.C f Kernel.Types.Common.Meters,
    driverPaymentCycleBuffer :: B.C f Kernel.Types.Common.Seconds,
    driverPaymentCycleDuration :: B.C f Kernel.Types.Common.Seconds,
    driverPaymentCycleStartTime :: B.C f Kernel.Types.Common.Seconds,
    driverPaymentReminderInterval :: B.C f Kernel.Types.Common.Seconds,
    driverSmsReceivingLimit :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    driverTimeSpentOnPickupThresholdOnCancel :: B.C f Kernel.Types.Common.Seconds,
    driverWalletConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    dropLocThreshold :: B.C f Kernel.Types.Common.Meters,
    dummyFromLocation :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    dummyShowDriverAdditions :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    dummyToLocation :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    dynamicReferralCodeEnabled :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    dynamicReferralCodeValidForMinutes :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Integer),
    editLocDriverPermissionNeeded :: B.C f Kernel.Prelude.Bool,
    editLocTimeThreshold :: B.C f Kernel.Types.Common.Seconds,
    emailOtpConfig :: B.C f (Kernel.Prelude.Maybe Email.Types.EmailOTPConfig),
    enableDashboardSms :: B.C f Kernel.Prelude.Bool,
    enableExistingVehicleInBulkUpload :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    enableFaceVerification :: B.C f Kernel.Prelude.Bool,
    enableFareCalculatorV2 :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    enableMobileNumberValidation :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    enableOverchargingBlocker :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    enableTollCrossedNotifications :: B.C f Kernel.Prelude.Bool,
    enableUdfForOffers :: B.C f Kernel.Prelude.Bool,
    enableVendorCheckForCollectingDues :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    exotelAppIdMapping :: B.C f (Kernel.Prelude.Maybe Domain.Types.Extra.TransporterConfig.ExotelMapping),
    exotelStatusCheckSchedulerDelay :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    fakeOtpEmails :: B.C f [Kernel.Prelude.Text],
    fakeOtpMobileNumbers :: B.C f [Kernel.Prelude.Text],
    fareRecomputeDailyExtraKmsThreshold :: B.C f Kernel.Types.Common.HighPrecMeters,
    fareRecomputeWeeklyExtraKmsThreshold :: B.C f Kernel.Types.Common.HighPrecMeters,
    fcmServiceAccount :: B.C f Kernel.Prelude.Text,
    fcmTokenKeyPrefix :: B.C f Kernel.Prelude.Text,
    fcmUrl :: B.C f Kernel.Prelude.Text,
    feedbackNotificationConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    fleetAlertThreshold :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    freeTrialDays :: B.C f Kernel.Prelude.Int,
    generateReferralCodeForFleet :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    generateReferralCodeForOperator :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    graceTimeForScheduledRidePickup :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    includeDriverCurrentlyOnRide :: B.C f Kernel.Prelude.Bool,
    isAAEnabledForRecurring :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    isAvoidToll :: B.C f Kernel.Prelude.Bool,
    isDeviceIdChecksRequired :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    isDynamicPricingQARCalEnabled :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    isMLBasedDynamicPricingEnabled :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    isPlanMandatory :: B.C f Kernel.Prelude.Bool,
    issueBreachConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    kaptureDisposition :: B.C f Kernel.Prelude.Text,
    kaptureQueue :: B.C f Kernel.Prelude.Text,
    languagesToBeTranslated :: B.C f [Kernel.External.Types.Language],
    lastNdaysToCheckForPayoutOrderStatus :: B.C f Kernel.Prelude.Int,
    liveEKD :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    localAmbulanceNumbers :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    localPoliceNumbers :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    mandateExecutionRescheduleInterval :: B.C f Kernel.Types.Common.Seconds,
    mandateNotificationRescheduleInterval :: B.C f Kernel.Types.Common.Seconds,
    mandateValidity :: B.C f Kernel.Prelude.Int,
    maxAllowedDocSizeInMB :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    maxAllowedVideoDocSizeInMB :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    maxPayoutReferralForADay :: B.C f Kernel.Prelude.Int,
    mediaFileSizeUpperLimit :: B.C f Kernel.Prelude.Int,
    mediaFileUrlPattern :: B.C f Kernel.Prelude.Text,
    merchantId :: B.C f Kernel.Prelude.Text,
    merchantOperatingCityId :: B.C f Kernel.Prelude.Text,
    meterRideBulkLocUpdateBatchSize :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Integer),
    minDistanceForStopFcm :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.HighPrecMeters),
    minLocationAccuracy :: B.C f Kernel.Prelude.Double,
    minRidesForCancellationScore :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    minRidesToUnlist :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    minThresholdForPassThroughDestination :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Meters),
    minmRentalAndScheduledBookingLeadTimeHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    nightSafetyEndTime :: B.C f Kernel.Types.Common.Seconds,
    nightSafetyRouteDeviationThreshold :: B.C f Kernel.Types.Common.Meters,
    nightSafetyStartTime :: B.C f Kernel.Types.Common.Seconds,
    normalRideBulkLocUpdateBatchSize :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Integer),
    notificationRetryCountThreshold :: B.C f Kernel.Prelude.Int,
    notificationRetryEligibleErrorCodes :: B.C f [Kernel.Prelude.Text],
    notificationRetryTimeGap :: B.C f Kernel.Types.Common.Seconds,
    numOfCancellationsAllowed :: B.C f Kernel.Prelude.Int,
    onboardingDocsCountLimit :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    onboardingRetryTimeInHours :: B.C f Kernel.Prelude.Int,
    onboardingTryLimit :: B.C f Kernel.Prelude.Int,
    openMarketUnBlocked :: B.C f Kernel.Prelude.Bool,
    orderAndNotificationStatusCheckFallBackTime :: B.C f Kernel.Types.Common.Seconds,
    orderAndNotificationStatusCheckTime :: B.C f Kernel.Types.Common.Seconds,
    orderAndNotificationStatusCheckTimeLimit :: B.C f Kernel.Types.Common.Seconds,
    otpRideStartRestrictionRadius :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Meters),
    overlayBatchSize :: B.C f Kernel.Prelude.Int,
    pastDaysRideCounter :: B.C f Kernel.Prelude.Int,
    payoutBatchLimit :: B.C f Kernel.Prelude.Int,
    pickupLocThreshold :: B.C f Kernel.Types.Common.Meters,
    placeNameCacheExpiryDays :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    popupDelayToAddAsPenalty :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    qarCalRadiusInKm :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Double),
    ratingAsDecimal :: B.C f Kernel.Prelude.Bool,
    rcChangeThresholdDays :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    rcExpiryChecks :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    rcLimit :: B.C f Kernel.Prelude.Int,
    recentScheduledBookingsSafeLimit :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    recomputeDistanceThresholds :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    recomputeIfPickupDropNotOutsideOfThreshold :: B.C f Kernel.Prelude.Bool,
    referralLinkPassword :: B.C f Kernel.Prelude.Text,
    refillVehicleModel :: B.C f Kernel.Prelude.Bool,
    requireRouteMappingInVehicle :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    requiresOnboardingInspection :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    rideTimeEstimatedThreshold :: B.C f Kernel.Types.Common.Seconds,
    routeDeviationThreshold :: B.C f Kernel.Types.Common.Meters,
    safetyTeamNumbers :: B.C f (Kernel.Prelude.Maybe [Kernel.Prelude.Text]),
    schedulePayoutForDay :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Integer),
    scheduleRideBufferTime :: B.C f Kernel.Types.Common.Seconds,
    scheduledRideFilterExclusionThresholdHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    scheduledRideJobRescheduleTime :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    scheduledRideSearchRepeatLimit :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    searchRepeatLimit :: B.C f Kernel.Prelude.Int,
    snapToRoadConfidenceThreshold :: B.C f Kernel.Prelude.Double,
    specialDrivers :: B.C f [Kernel.Prelude.Text],
    specialLocationTags :: B.C f [Kernel.Prelude.Text],
    specialZoneBookingOtpExpiry :: B.C f Kernel.Prelude.Int,
    stepFunctionToConvertCoins :: B.C f Kernel.Prelude.Int,
    subscription :: B.C f Kernel.Prelude.Bool,
    subscriptionConfig :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    subscriptionStartTime :: B.C f Kernel.Prelude.UTCTime,
    thresholdCancellationPercentageToUnlist :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    thresholdCancellationScore :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    timeDiffFromUtc :: B.C f Kernel.Types.Common.Seconds,
    toNotifyDriverForExtraKmsLimitExceed :: B.C f Kernel.Prelude.Bool,
    updateNotificationStatusBatchSize :: B.C f Kernel.Prelude.Int,
    updateOrderStatusBatchSize :: B.C f Kernel.Prelude.Int,
    updatePayoutStatusBatchSize :: B.C f Kernel.Prelude.Int,
    updatedAt :: B.C f Kernel.Prelude.UTCTime,
    upgradeTierDropRetentionTime :: B.C f (Kernel.Prelude.Maybe Kernel.Types.Common.Seconds),
    upwardsRecomputeBuffer :: B.C f Kernel.Types.Common.HighPrecMeters,
    upwardsRecomputeBufferPercentage :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    useDBForAnalytics :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Bool),
    useOfferListCache :: B.C f Kernel.Prelude.Bool,
    useSilentFCMForForwardBatch :: B.C f Kernel.Prelude.Bool,
    useWithSnapToRoadFallback :: B.C f Kernel.Prelude.Bool,
    validNameComparePercentage :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    variantsToEnableForSubscription :: B.C f [Domain.Types.VehicleVariant.VehicleVariant],
    volunteerSmsSendingLimit :: B.C f (Kernel.Prelude.Maybe Data.Aeson.Value),
    weeklyConditionCooldownTimeHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    weeklyMinRidesForBlocking :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    weeklyMinRidesForNudging :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int),
    weeklyOffenceSuspensionTimeHours :: B.C f (Kernel.Prelude.Maybe Kernel.Prelude.Int)
  }
  deriving (Generic, B.Beamable)

instance B.Table TransporterConfigT where
  data PrimaryKey TransporterConfigT f = TransporterConfigId (B.C f Kernel.Prelude.Text) deriving (Generic, B.Beamable)
  primaryKey = TransporterConfigId . merchantOperatingCityId

type TransporterConfig = TransporterConfigT Identity

$(enableKVPG ''TransporterConfigT ['merchantOperatingCityId] [])

$(mkTableInstancesWithTModifier ''TransporterConfigT "transporter_config" [("automaticRCActivationCutOff", "automatic_r_c_activation_cut_off")])

$(Domain.Types.UtilsTH.mkCacParseInstance ''TransporterConfigT)
